package 模拟真题;

import java.util.*;

/**
 * @author ShadowLim
 * @create 2022-03-24-21:17
 */
public class 公约数 {

    /**
     * 自己解法
     * @param args
     */
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        long a = scanner.nextLong(), b = scanner.nextLong(), c = scanner.nextLong();
//        scanner.close();
//        List<Long> lista = new ArrayList<>();
//        List<Long> listb = new ArrayList<>();
//        List<Long> listc = new ArrayList<>();
//
//        // 求 a 的因子
//        for (long i = 1; i <= a / i; i++) {  // 不会重复加入因子（所有因子只加入1次） i == 6时循环结束
//            if (a % i == 0) {
//                lista.add(i);
//                if (i != a / i) {
//                    lista.add(a / i);
//                }
//            }
//        }
//
//        for (long i = 1; i <= b / i; i++) {
//            if (b % i == 0) {
//                listb.add(i);
//                if (i != b / i) {
//                    listb.add(b / i);
//                }
//            }
//        }
//
//        for (long i = 1; i <= c / i; i++) {
//            if (c % i == 0) {
//                listc.add(i);
//                if (i != c / i) {
//                    listc.add(c / i);
//                }
//            }
//        }
//
//        int sizea = lista.size(), sizeb = listb.size(), sizec = listc.size();
//        int cnt = 0;
//        Set<Long> set = new HashSet<>();
//
//        for (int i = 0; i < sizea; i++) {
//            for (int j = 0; j < sizeb; j++) {
//                if (lista.get(i) == listb.get(j) && !set.contains(lista.get(i))) {
//                    cnt++;
//                    set.add(lista.get(i));
//                }
//            }
//        }
//
//        for (int i = 0; i < sizea; i++) {
//            for (int j = 0; j < sizec; j++) {
//                if (lista.get(i) == listc.get(j) && !set.contains(lista.get(i))) {
//                    cnt++;
//                    set.add(lista.get(i));
//                }
//            }
//        }
//
//        for (int i = 0; i < sizeb; i++) {
//            for (int j = 0; j < sizec; j++) {
//                if (listb.get(i) == listc.get(j) && !set.contains(listb.get(i))) {
//                    cnt++;
//                    set.add(listb.get(i));
//                }
//            }
//        }
//
//        System.out.println(cnt);
//
////        int len = set.size(), idx = 0;
////        long[] temp = new long[len];
////        for (Long i : set) {
////            temp[idx++] = i;
////        }
////        Arrays.sort(temp);
////        for (int i = 0; i < temp.length; i++) {
////            System.out.print(temp[i] + " ");
////        }
////        System.out.println();
//    }

    static Set<Long> set1=new HashSet<Long>();
    static Set<Long> set2=new HashSet<Long>();
    //用来存放答案
    static Set<Long> anser=new HashSet<Long>();
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        long a=sc.nextLong();
        long b=sc.nextLong();
        long c=sc.nextLong();
        check1(a);
        check2(b);
        check3(c);
        System.out.println(anser.size());
    }
    //遍历a
    static void check1(long n) {
        for(Long i=1L;i<=n/i;++i) {
            if(n%i==0) {
                set1.add(i);
                set1.add(n/i);
            }
        }
    }
    //遍历b
    static void check2(long n) {
        for(Long i=1L;i<=n/i;++i) {
            if(n%i==0) {
                set2.add(i);
                set2.add(n/i);
                if(set1.contains(i)) anser.add(i);
                if(set1.contains(n/i)) anser.add(n/i);
            }
        }
    }
    //遍历c
    static void check3(long n) {
        for(Long i=1L;i<=n/i;++i) {
            if(n%i==0) {
                if(set1.contains(i)||set2.contains(i)) anser.add(i);
                if(set2.contains(n/i)||set2.contains(n/i)) anser.add(n/i);
            }
        }
    }
}
